//话题类型schema
var mongoose = require('mongoose')

//创建一个类型的Schema
var TypeSchema = new mongoose.Schema({
    //type为唯一键
		type:{
			unique:true,
			type:String
		},
    //描述内容
		description:String,

		meta:{

			createAt:{

				type:Date,
				default:Date.now()
			},

			updateAt:{

				type:Date,
				default:Date.now()
			}

		}

})
TypeSchema.pre('save',function(next){

	if(this.isNew){

		this.meta.createAt = this.meta.updateAt = Date.now()

		next()
	}
	else{

		this.meta.updateAt = Date.now()

		next()
	}

})
TypeSchema.statics = {
  //获取所有的type数据
	fetch : function(cb){
		return this.find({}).sort('meta.updateAt').exec(cb)
	},
  //通过type的id获取数据
	findById : function(id,cb){
		return this.findOne({_id:id}).sort('meta.updateAt').exec(cb)
	},
  //通过type获取唯一的那个类型
	findByType: function(type,cb){
		return this.findOne({type:type}).exec(cb)
	}
}

//导出TypeSchema模块
module.exports = TypeSchema